草庐IT

c++ - std::condition_variable 伪阻塞

全部标签

c - 将 cgo 与 typedef 变量一起使用

由于现有的库和速度,我正在创建一个项目,该项目使用我用C编写的密码学。尝试与Cgo交互时,我在使用C中创建的typedef时遇到了一些问题。下面是一个示例:typedefunsignedcharec_scalar[32];我能够成功创建ec_point变量,并使用接受ec_point*的函数。但是,每当我尝试使用通过普通ec_point传递的函数时,我都会收到错误消息:cannotusepk2(typeC.ec_scalar)astype*C.ucharinargumentto_Cfunc_secret_to_public我似乎找不到可以轻松转换它的方法。我也不想重构我的代码来接受ec

c - 将 C 翻译成 Golang。如何分配内存以匹配 C?

所以我正在翻译我在C中创建的程序。这个程序的目标是简单地从文件中读取矩阵,以稀疏行格式压缩矩阵,然后计算矩阵vector乘积。这是C语言的程序片段。//ReadtheMatrixMarketfileandinitializeaCSRformattedmatrix.csr_load_matrix(fileName,&compressedSparseMatrix);//Setthecorrectvaluestothestructandcreatethememoryallocation.double*x;double*y;x=malloc(compressedSparseMatrix.col

go - Beego语法的功能 'Ctx.Input.GetData(' <variable-name >')'

我是beego和goLang的新手。我遇到了一个代码。如果有人可以解释流程,那将非常有帮助。它是一个GETAPI。我认为Prepare()就像一个过滤器。我不明白的是c.Ctx.Input.GetData("customerid")和c.Ctx.Input.GetData("customergroupid")函数。谁能解释一下GetData正在做什么以及我们如何将值传递给它们?//URLMapping...func(c*CampusHomeController)URLMapping(){c.Mapping("GetOne",c.GetOne)}func(c*CampusHomeCont

c - 在 libpango 中调用 pango_cairo_font_map_get_default() 时出现 "GLib-GObject-CRITICAL"的原因是什么?

这是一道关于gtk/glib/libpango/libcairo的概念题。让我们直奔问题。我正在用一位前同事用Go编写的旧C库进行包装,在C代码调用的某处pango_cairo_font_map_get_default()获取由libpango维护的默认font_map。包装基本上是从Go域进入C域(外部函数接口(interface))和C端使用pthread创建一个线程最终调用pango_cairo_font_map_get_default。最初,在纯C端一切正常。包装后,C代码卡在调用pango_cairo_font_map_get_default()printf("beforec

c - 通过Cgo访问aerospike C客户端报错

我正在尝试学习Cgo,所以我尝试从Cgo访问aerospike客户端packagemain//#cgoCFLAGS:-g-Wall//#include//#include//#include"aerospike-client-c/examples/put/example_utils.h"import"C"import("unsafe")funcmain(){retvals:=C.putitnew()_=retvals}但我遇到以下错误。(请注意,当我执行make和makerun时,C程序运行成功)。undefinedreferenceto`example_get_opts'./aero

variables - 变量的不同行为和函数的返回值

我想连接两行,但收到​​错误消息。原文:hash:=sha1.Sum([]byte(uf.Pwd))u.Pwhash=hex.EncodeToString(hash[:])联合:u.Pwhash=hex.EncodeToString(sha1.Sum([]byte(uf.Pwd))[:])第一个工作正常,第二个产生错误消息:models/models.go:104:invalidoperationsha1.Sum(([]byte)(uf.Pwd))[:](sliceofunaddressablevalue)这是为什么? 最佳答案 在

variables - 根据 switch 语句更改变量类型

我正在Go中创建一个POSTHTTP请求函数,该函数将通过参数接受不同的数据类型,但是在将值从switch语句分配给requestData变量时我遇到了困难。理想情况下,在我们转到switch语句然后为其分配值和类型之前,requestData应该是nil类型。任何帮助表示赞赏:)关于请求数据的错误消息:“语法错误:意外类型,预期类型”我的代码:main(){..//CASE1:wearepassingtheformofurl.Valuestypeform:=url.Values{}form.Add("note","john2424")form.Add("http","clear")r

google-app-engine - app.yaml env_variables中无法处理换行代码

我想将包含换行代码的字符串设置为环境变量。因此,我设置了以下app.yaml。env_variables:PARAM1:"aaa\nbbb"在我的本地环境(MacOSX)中,appenginegolang应用程序获取收集的数据。aaabbb但是,我上传到标准GAE环境,应用程序只得到“aaa”。我应该做任何其他设置吗? 最佳答案 我的猜测是这两种环境之间的yaml解析器略有不同。如果您尝试为yaml切换到这些多行字符串格式之一,它是否有效?InYAML,howdoIbreakastringovermultiplelines?这个答案

go - 如何在 grpc go 中实现非阻塞客户端?

我想在不同的服务器上运行不同的远程程序而不等待服务器的回复。当服务器完成程序时,我想在客户端回复。可以用grpcgolang做吗?我想实现一个区block链网络,我想要求不同的节点执行交易,但我不想等到一个节点提供执行输出,然后我才转移到另一个节点。换句话说,我想广播程序的执行过程,然后在执行过程中得到所有答案。我尝试了连接客户端和服务器的常用方法,但它等待服务器的响应。这会增加需要在更多节点上执行的时间。 最佳答案 你可以使用gofunc(){}()做异步任务,你可以使用同步内置包轻松控制异步任务或使用channel来控制或同步任

c - Golang cgo *C.int 大小差异

我正在探索CGO,我遇到了一个怪癖,在go运行时中C.int的大小是8个字节,但Cint是4个字节。我知道Goint可以是64位或32位,具体取决于体系结构,而Cint始终是32位。是有一种标准方法可以告诉go对C.int类型使用4个字节吗?我无法找到处理此问题的文档。因此,代码无法按预期运行。它基本上将低端添加到第一个int的高端。它从不引用传递的第二个int。提前致谢。实际输出:0xc00001a0b00xc00001a0b80xc00001a0b00xc00001a0b41990199主.gopackagemain/*intaddNums(int*nums);*/import"C